<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.prime.com.tr/ui">

	<ui:composition template="/new-template/template-crud.xhtml">
	
		<ui:define name="includeScript">
			<h:outputScript library="js" name="jquery.mask.js" target="form" />

		</ui:define>
	
    	<ui:define name="tituloPagina">
    		<h:outputText value="Usuarios :: Controle de Acesso :: ZPE" />
    	</ui:define>
    	    	
    	<ui:define name="parametros">
    	   <ui:param name="bean" value="#{usuarioBean}" />
    	</ui:define>
    	
		
    	<ui:define name="tituloFieldSetFiltro">
		   <h:outputText value="&nbsp; Pesquisa de Usuarios &nbsp;" />
		</ui:define>
		
		<ui:define name="camposFiltro">
			<h:panelGrid columns="2" columnClasses="colunaBusca"  >
				  		
				 <h:outputLabel value="Nome: "/>
				 <h:inputText id="inputText" value="#{usuarioBean.entitySearch.descricao}" 
							  size="50" maxlength="50"	>
					<f:converter converterId="converterStringVazia"/>
					<f:validator validatorId="textoValidator"/>
					<f:validateLength maximum="50" minimum="4"/>
				 </h:inputText>	
						  	
				<h:outputLabel value="Login: "/>
					<h:inputText 
						label="Login"
						value="#{usuarioBean.entitySearch.login}" 
						size="30" 
						maxlength="30">
						<f:converter converterId="converterStringVazia"/>
						<f:validateLength maximum="50" minimum="3"/>
					</h:inputText>
					
	
					<h:outputLabel value="Email:"/>
						<h:inputText 
							label="Email"
							maxlength="50"
							style="text-transform: lowercase;"
							value="#{usuarioBean.entitySearch.email}" 
							size="50"
							converter="converterStringVazia">
						<f:validateLength minimum="4" maximum="50"/>
						</h:inputText>					  	
				  	
			</h:panelGrid>
		</ui:define>
		
		<ui:define name="tituloPainel">
		  <ui:param name="tituloPainel" value="Usuarios" />
		</ui:define>


		<ui:define name="resultFiltro">
		
						<p:dataTable align="center"  
   							 id="usuarios"
   							 rows="10"
   						 	 pageLinks="3"
   						 	 widgetVar="tableUsuario"
   						     paginatorAlwaysVisible="false"
   						     emptyMessage="Nenhum usuario foi encontrado."
   						 	 value="#{usuarioBean.resultSearch}" 
       					 	 var="user" 
       					 	 paginator="#{usuarioBean.resultSearch.rowCount > 0}"
       					 	 paginatorPosition="bottom" styleClass="table"
       					 	 rowStyleClass="bgLinha1,bgLinha2">
       					
       						<p:column headerText="" style="width:60px; text-align:center;">
       							<div class="colunaAcao">					    			
									<h:commandButton style="border:none;" 
													 id="cmdUpd" 
													 image="#{resource['img:ico_edit.gif']}"
													 actionListener="#{usuarioBean.prepareUpdate}">
										<p:ajax update="painelGlobal" />
									</h:commandButton>
								</div>
       						</p:column>
       						
       						<p:column headerText="ID" style="text-align:center;">
       							<h:outputText value="#{user.id}" />
       						</p:column>
       						
       						<p:column headerText="Nome" style="text-align:left;" >
       							<h:outputText value="#{user.descricao}" />
       						</p:column>
       						
       						<p:column headerText="Login" style="text-align:left;" >
       							<h:outputText value="#{user.login}" />
       						</p:column>  
       						<p:column headerText="Email" style="text-align:left;" >
       							<h:outputText value="#{user.email}" />
       						</p:column>  
       						<p:column headerText="Grupos" style="text-align:left;" >
       							<h:outputText value="#{user.grupos}" />
       						</p:column>         						       						     						
       						<p:column style="width:60px; text-align:center;">
       							<f:facet name="header">
       								<h:selectBooleanCheckbox rendered="#{usuarioBean.resultSearch.rowCount > 0}" styleClass="ui-checkBoxMain" />
       							</f:facet>
       							<h:selectBooleanCheckbox styleClass="ui-checkBox" valueChangeListener="#{usuarioBean.select}" />
       						</p:column>
       						
				 	</p:dataTable> 

		</ui:define>
			
			
		<ui:define name="tituloFieldSetInsert">
		  <h:outputLabel value="&nbsp; Cadastro de Usuarios &nbsp;" />
		</ui:define>
		
		<ui:define name="botoesInsertFiltro">
			<p:commandButton value="Novo"
							 actionListener="#{bean['prepareInsert']}" 
							 rendered="#{loginBean.acessos.usuarios.insert}"
							 onclick="carregando.show();" 
								 styleClass="btn btn-success btn-sm" 
							 update="painelGlobal" />
							 
			<p:commandButton value="Excluir" 
							 styleClass="btIcon botaoExcluir"
							 ajax="true"
							 style="display:none;"
							 rendered="#{loginBean.acessos.usuarios.remove}"
							 onclick="showIf()" 
							 image="remIcon" />
		</ui:define>
		
		<ui:define name="camposInsert">
			
   		  	<h:panelGrid id="modalPanel" columns="4" >
   		  		
   		  			<p:dialog id="unidadesModal"
          		  			  header="Unidades de Trabalho"
              	  			  widgetVar="unidadesModal"
              	  			  width="650"
              	  			  closeOnEscape="true"
              	  			  showEffect="fade"
              	  			  rendered="#{usuarioBean.unidades.rowCount > 1}"
              	  			  visible="#{usuarioBean.unidades.rowCount > 1}"
          		  		      closable="false"  
          		  			  modal="true">
		  			  
				  		<p:dataTable align="center" 
		   							 width="600px" 
		   							 id="unidadeTrabalho"
		   							 rows="10"
		   						 	 pageLinks="3"
		   						 	 widgetVar="tableUnidadeTrabalho"
		   						     paginatorAlwaysVisible="false"
		   						     emptyMessage="Nenhuma unidade de trabalho foi encontrada."
		   						 	 value="#{usuarioBean.unidades}"
		       					 	 var="unidade" 
		       					 	 paginator="#{usuarioBean.unidades.rowCount > 0}"
		                 			 paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"         				 	 
		       					 	 paginatorPosition="bottom"
		       					 	 rowStyleClass="bgLinha1,bgLinha2">
		       					 	 
					  			<p:column headerText="INEP" style="text-align:left;" >
					  				<h:outputText value="#{unidade.numero}" />
					  			</p:column>
					  			
					  			<p:column headerText="Escola" style="text-align:left;">
					  				<h:outputText value="#{unidade.descricao}" />
					  			</p:column>
					  			
					  			<p:column headerText="Municipio" style="text-align:left;" >
					  				<h:outputText value="#{unidade.localidade.descricao}" />
					  			</p:column>
					  			
					  			<p:column headerText="Bairro" style="text-align:left;">
					  				<h:outputText value="#{unidade.bairro.descricao}" />
					  			</p:column>
				  					  			
								<p:column>
									<h:commandButton image="#{resource['img:ico_ok.png']}" 
									                 value="Selecionar Unidade de Trabalho"						                  
									                 styleClass="removeBordaLupa"
									                 actionListener="#{usuarioBean.selecionarItem}">
									 	 <p:ajax process="@this" update=":formCadastro:modalPanel :formCadastro:unidadeLov" oncomplete="unidadesModal.hide(); carregando.hide();" />
									</h:commandButton>										
								</p:column>
				  		
		 		  		</p:dataTable>
		  			  
		  			</p:dialog>
		  			
   		  	</h:panelGrid>	
   		  	
   		  	
			<script type="text/javascript">
				/* <![CDATA[ */
						             
   			      var handler = function handler(data) {
   			        
   			       	  var loading = carregando || $j(carregando);
					  if(data.status === 'begin') {
   			    	  	 loading.show(); 
   			    	  }  else if (data.status === 'success') {
   			    	     loading.hide();
   			     	  }
   				   };
						
				/* ]]> */
  			</script>
		
			<h:panelGrid columns="2" columnClasses="colunaBusca" >
				  		
				  <h:outputLabel value="Unidade de Trabalho: *"/>
				  <h:panelGrid id="unidadeLov" columns="5" >
		
				  		
				  		<h:inputText id="descricaoUnidade"
				  		             value="#{usuarioBean.entity.unidadeDeTrabalho.descricao}"
				  		             size="60"
				  		             label="Unidade de Trabalho"
				  		             converter="converterStringVazia" >
				  		</h:inputText>
				  		<h:commandButton id="searchLov"
  	  	  						         image="#{resource['img:lupa_pesquisa.gif']}" 
  	  	  					             style="border:none;"
  	  	  					     		 actionListener="#{usuarioBean.findUnidadeByDescricao}">
  	  	  		     		<f:ajax onevent="handler" 
  	  	  		     			    render=":formCadastro:unidadeLov :formCadastro:modalPanel :formPanel:mensagemAviso" 
  	  	  		     		 	    execute="descricaoUnidade" />		 
  	  	  				</h:commandButton>
				  
				  </h:panelGrid>
				  
					<h:outputLabel value="Nome: *"/>
					<h:inputText required="true" 
								 label="Nome" 
								 id="nome"
								 value="#{usuarioBean.entity.descricao}" 
								 maxlength="90" 
								 size="100" 
								 converter="converterStringVazia">
						<f:validator validatorId="textoValidator"/>
						<f:validateLength minimum="3" maximum="90"/>						
					</h:inputText>
					
					<h:outputLabel value="Login: *"/>
					<h:inputText 
						required="true" 
						label="Login" id="login"
						value="#{usuarioBean.entity.login}" 
						maxlength="50" size="25"
						converter="converterStringVazia">
						<f:validateLength minimum="3" maximum="50"/>						
					</h:inputText>
	
					<h:outputLabel value="Email: *"/>
					<h:inputText
					    required="true"
						label="Email" 
						id="email"
						style="text-transform: lowercase;"
						value="#{usuarioBean.entity.email}" 
						maxlength="100" size="50">	
						<f:validator validatorId="emailValidator"/>
						<f:converter converterId="converterStringVazia" />					
					</h:inputText>
					
					<h:outputLabel value="Data de Cadastro:" rendered="#{usuarioBean.editing}"/>
					<p:calendar 
								id="dataCadastro" size="8"
								inputSize="10" disabled="true"
								navigator="true"
								required="true" 
								label="Data de Cadastro"
								rendered="#{usuarioBean.editing}"
								styleClass="removeArredondadoCalendar"
								value="#{usuarioBean.entity.dataCriacao}">						
					</p:calendar>
					
				
                    <h:outputText value="Grupos*:" />
                    <p:pickList value="#{usuarioBean.listaGrupos}" 
                    			addAllLabel="Adicionar Todos"
                    			addLabel="Adicionar"
                    			removeAllLabel="Remover Todos"
                    			removeLabel="Remover"
                     			var="grupo" 
                     			converter="converterEntity"
                                itemLabel="#{grupo.descricao}" 
                                itemValue="#{grupo}">                    
                    </p:pickList>		  
			<script >
		
			(function($) {
				$(function() {
					$('.hasDatepicker').mask('99/99/9999');
				});
				})(jQuery);

			</script>
		  </h:panelGrid>
		</ui:define>			

	</ui:composition>
</html>